The present invention relates generally to techniques for implementing the remote mirroring function. More particularly the present invention relates to a method and apparatus for increasing an amount of memory on demand in a storage system implementing the remote mirroring function when the mirrored pair of volumes of the storage system is operated in the asynchronous mode.
Conventionally, there have been two types of approaches to storage-based volume replication, namely local replication and remote (copy) replication. Both technologies mirror files, file systems, or volumes without using host CPU power. When a host conducts a host input/output (I/O) such as a write I/O of data to a primary volume (PV) of a storage system, the storage system automatically copies the data to a replication (secondary) volume (SV). This mechanism ensures that PV and SV are identical.
Local replication duplicates the primary volume within a first storage system, so that when the host writes data to the PV, the first storage system also stores the data to a local secondary volume (LSV). Local replication is typically used for taking backups.
Remote replication duplicates volumes across two or more storage the data through paths, such as ESCON, Fibre Channel, T3, and/or IP networks, to at least one second storage system for storage in a remote secondary volume (RSV) included therein. Remote replication is typically used to enable the recovery of data from disasters, such as earthquake, flood, fire, and the like. Even if the first storage system or the whole data center at the primary site is damaged by a disaster, data is unaffected at the secondary site and business can be resumed quickly.
There are at least two modes of transferring data to implement remote mirroring between local and remote storage systems, namely synchronous mode and asynchronous mode. In the synchronous mode, all write I/O's to the PV of the first storage system are mirrored at the RSV of the second storage system. In the asynchronous mode, in response to a write I/O, the first storage system completes the write I/O and then asynchronously transfers the write data to the second storage system for storage on the RSV. Specifically, the write data to be copied to the RSV of the second storage system is temporarily stored in a queuing area, such as cache memory, disk storage, Non-Volatile Random Access Memory (NVRAM) etc. The write data is retrieved from the queuing area and then stored in the RSV of the second storage system.
The queuing area where the write data is temporarily stored may run out if the write I/O rate (write I/O's per second) to the primary volume of the first (local) storage system is much higher than the throughput for copying the write data from the queuing area to the remote secondary volume of the second (remote) storage system. Once the unused area of the queuing area becomes less than a certain percentage of total area of the queuing area, the storage system mirroring function will initiate a throttling function to curb the new write I/O's. Thus, the performance of the storage system with respect to write I/O's degrade over time.
A current proposed solution is that if a customer experiences a degradation in performance with respect to write I/O's, then the customer calls a customer support center which analyzes the cause of the problem and may increase the capacity of the queuing area if necessary. The total turn around time for this proposed solution if long can negatively affect customer satisfaction. This negative affect on customer satisfaction is more likely to occur since the turn around time is influenced by many human interactions that are necessary.